home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tcl / demos / dialog < prev    next >
Encoding:
Text File  |  1992-08-13  |  2.1 KB  |  55 lines

  1. #!wish -f
  2. #
  3. # This script generates a sample dialog box that waits for one of three
  4. # buttons to be pressed, then prints a message and exits.
  5.  
  6. # Create two frames in the main window. The top frame will hold the
  7. # message and the bottom one will hold the buttons.  Arrange them
  8. # on above the other, with any extra vertical space split between
  9. # them.
  10.  
  11. frame .top -relief raised -border 1
  12. frame .bot -relief raised -border 1
  13. pack append . .top {top fill expand} .bot {top fill expand}
  14.  
  15. # Create the message widget and arrange for it to be centered in the
  16. # top frame.
  17.  
  18. message .top.msg -text "File main.c hasn't been saved to disk since \
  19. it was last modified.  What should I do?" -justify center \
  20. -font -Adobe-helvetica-medium-r-normal--*-240* -aspect 200
  21. pack append .top .top.msg {top padx 5 pady 5 expand}
  22.  
  23. # Create the buttons and arrange them from left to right in the bottom
  24. # frame.  Embed the left button in an additional sunken frame to indicate
  25. # that it is the default button.
  26.  
  27. frame .bot.left -relief sunken -border 1
  28. pack append .bot .bot.left {left expand padx 20 pady 20}
  29. button .bot.left.button -text "Save File" -command "quit save"
  30. pack append .bot.left .bot.left.button {expand padx 12 pady 12}
  31. button .bot.middle -text "Quit Anyway" -command "quit quit"
  32. pack append .bot .bot.middle {left expand padx 20}
  33. button .bot.right -text "Return To Editor" -command "quit return"
  34. pack append .bot .bot.right {left expand padx 20}
  35.  
  36. # The procedure below is invoked as the action for each of the buttons.
  37. # It prints a message and exits by destroying the application's main
  38. # window.
  39.  
  40. proc quit button {
  41.     puts stdout "You pressed the \"$button\" button;  bye-bye!"
  42.     destroy .
  43. }
  44.  
  45. bind .top <Enter> {.bot.left.button activate}
  46. bind .top.msg <Enter> {.bot.left.button activate}
  47. bind .bot <Enter> {.bot.left.button activate}
  48. bind .top <Leave> {.bot.left.button deactivate}
  49. bind .top.msg <Leave> {.bot.left.button deactivate}
  50. bind .bot <Leave> {.bot.left.button deactivate}
  51. bind . <1> {.bot.left.button config -relief sunken}
  52. bind . <ButtonRelease-1> {quit save}
  53. focus .
  54. bind . <Return> {quit save}
  55.